{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import time\n",
    "import pymysql\n",
    "import threading\n",
    "from dbutils.pooled_db import PooledDB,SharedDBConnection\n",
    "\n",
    "\n",
    "class myPooledDB():\n",
    "    POOL = None  # 静态PooledDB实例对象，为所有myPooledDB实例对象共用\n",
    "    \n",
    "    def __init__(self):\n",
    "        return None\n",
    "        \n",
    "        \n",
    "    @staticmethod\n",
    "    def setPOOL():\n",
    "        if myPooledDB.POOL is None:\n",
    "            myPooledDB.POOL = PooledDB(\n",
    "            creator=pymysql,  # 使用链接数据库的模块\n",
    "            maxconnections=6,  # 连接池允许的最大连接数，0和None表示不限制连接数\n",
    "            mincached=2,  # 初始化时，链接池中至少创建的空闲的链接，0表示不创建\n",
    "            maxcached=None,  # 链接池中最多闲置的链接，0和None不限制\n",
    "            maxshared=3,  # 链接池中最多共享的链接数量，0和None表示全部共享。PS: 无用，因为pymysql和MySQLdb等模块的 threadsafety都为1，所有值无论设置为多少，_maxcached永远为0，所以永远是所有链接都共享。\n",
    "            blocking=True,  # 连接池中如果没有可用连接后，是否阻塞等待。True，等待；False，不等待然后报错\n",
    "            maxusage=None,  # 一个链接最多被重复使用的次数，None表示无限制\n",
    "            setsession=[],  # 开始会话前执行的命令列表。如：[\"set datestyle to ...\", \"set time zone ...\"]\n",
    "            ping=None,\n",
    "            # ping MySQL服务端，检查是否服务可用。# 如：0 = None = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always\n",
    "            host='127.0.0.1',\n",
    "            port=3306,\n",
    "            user='root',\n",
    "            password='root',\n",
    "            database='productnotice',\n",
    "            charset='utf8'\n",
    "        )\n",
    "        \n",
    "        \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
